home *** CD-ROM | disk | FTP | other *** search
-
- ******************************************************************
- * *
- * GRAFTALE + IFS *
- * Ein Programm zur Erzeugung und Manipulation von Graftalen *
- * sowie Iterativen Funktionssystemen (IFS) *
- * (Als Zugabe: Einige bekannte rekursive Kurven) *
- * *
- * Autor: Dr. Klaus Fröhlich *
- * Wormser Str. 18 *
- * 6054 Rodgau 3 *
- * Tel. 06106-74599 *
- * *
- ******************************************************************
-
- I. BEDIENUNG
- II. WAS SIND GRAFTALE?
- III. ÜBER ITERATIVE FUNKTIONSSYSTEME (IFS) UND DEREN PARAMETERSÄTZE
- IV. LITERATURHINWEIS
- V. ZUM SCHLUß EINE BITTE DES AUTORS (KEINE ANGST, ES GEHT NICHT UM
- GELD!)
-
-
-
- I. BEDIENUNG (am Anfang, da einfach und relativ kurz)
- =====================================================
- Nach dem Programmstart ist unter dem Menupunkt 'Berechnung' der Eintrag
- 'Graftale' vorgewählt (Häkchen). Der vorgegebene Parameter-Satz ent-
- spricht GRAFTAL1.PAR.
- Wollen Sie eine der rekursiven Kurven oder IFS darstellen lassen, so
- wählen Sie den entsprechenden Eintrag an (Häkchen) und laden die ent-
- sprechenden Parameter-Sätze. Die Schneeflocke wird mit den Parametern
- der Koch-Kurve dargestellt, das Gras mit denen des Zufallszweigs.
- Abspeichern von Bildern:
- Sie haben die Möglichkeit, die erzeugten Graphiken entweder im ungepack-
- ten Screen-Format (32000 Byte, Endung .PIC) oder in einem gepackten For-
- mat (Extender .PAC) abzuspeichern. Das PAC-Format ist nicht identisch
- mit dem von STAD! Beim Laden eines Bildes wird eine Dateigröße kleiner
- 32000 Byte als PAC-Format interpretiert. Das Komprimieren eines Bildes
- dauert ca. 20-30 sec, das Dekodieren geht wesentlich schneller.
-
- Graftale und rekursive Kurven:
- Nach dem Starten der Berechnung werden die Parameter angezeigt. Sie kön-
- nen natürlich verändert werden. Nach Mausklick auf 'weiter' oder Betäti-
- gung der RETURN-Taste klicken Sie auf die Startposition. Bei den Graf-
- talen sollte dieser nahe dem unteren Bildschirmrand sein, ebenso bei
- Bäumen, Gräsern und Zweigen. Rekursive Kurven können durch einen erneu-
- ten Klick auf die linke Maustaste unterbrochen werden.
- Bei Parametersätzen, die viele Verzweigungen generieren, und größerer
- Iterationstiefe kann es sein, daß der für den Code reservierte Platz von
- 64 kB nicht ausreicht; es wird dann ein entsprechender Hinweis gegeben.
- Sie haben die Möglichkeit, sich mehr Code-Speicher zu reservieren, so es
- der Hauptspeicher zuläßt. Für die meisten Anwendungen kommen Sie mit den
- 64 kB reichlich aus. Kleinere Einstellungen werden negiert.
-
- IFS:
- Nach dem Starten der Berechnung erscheint eine Datei-Auswahlbox zum La-
- den eines Parametersatzes. Soll mit einem bereits geladenen Parameter-
- satz gerechnet werden, so geben Sie KEINE Datei an und gehen mit 'OK'
- weiter, andernfalls wählen Sie einen Datensatz. Zum Start der Berech-
- nung klicken Sie mit der linken Maustaste irgendwo auf den Bildschirm.
- Die Berechnung erfolgt so lange, bis erneut ein Klick mit der linken
- Maustaste durchgeführt wird (Taste gedrückt halten, bis Menuleiste er-
- scheint).
- Der Parametersatz (Bedeutung siehe III.) ist eine Textdatei und kann mit
- einem Texteditor verändert werden. Zum bequemen Ändern der Parameter
- kann ein Editor (z.B. TEMPUS) oder Textverarbeitung, die ASCII-Texte
- bearbeitet (z.B. WORDPLUS) angegeben und dessen Pfad abgespeichert wer-
- den. Wählt man nun unter dem Menupunkt 'Parameter' den Eintrag 'Para-
- meter anzeigen', so wird dieser Editor direkt mit einem wählbaren Para-
- metersatz gestartet.
- Achtung TEMPUS-Benutzer: Vor Abspeichern eines Parameter-Satzes Text ex-
- pandieren, da sonst kein korrektes Einlesen der Daten möglich ist!
-
- Parameter-Box der Graftale: Die Zahl der Generationen ist gewöhnlich
- kleiner als 25. Normalerweise kommt man mit ~10 aus, wie man den Bei-
- spiel-Parametersätzen entnehmen kann. Achtung, die Rechenzeit wächst
- mit zunehmender Zahl der Generationen exponentiell!
- Erhöht man die Generationen-Zahl, so ist das mit einem Wachstum und zu-
- nehmender Verzweigung der Graftal-Pflanze verbunden. In der Regel müssen
- Sie daher die Seitenlänge reduzieren.
- Bei der Winkel-Einstellung haben Sie verschiedene Möglichkeiten:
- 1. Zahl der Winkel 0, kein Winkel-Eintrag
- Bedeutung: Zufallswinkel zwischen -45 und 45 Grad
- 2. Zahl der Winkel 0, zwei Winkel-Einträge w1 und w2
- Bedeutung: Zufallswinkel zwischen w1 und w
- 3. Zahl der Winkel n, n Winkel-Einträge
- Bedeutung: Zufällige Auswahl unter den n angegebenen Winkel
- Der Start-Code hat einen enormen Einfluß auf das Aussehen des Graftals.
- Experimentieren Sie mal herum!
- Die weitere Bedienung ist selbsterklärend. Alle wichtigen Menu-Punkte
- können auch über Kombinationen mit der ALTERNATE-Taste erreicht werden.
-
-
- II. WAS SIND GRAFTALE? (etwas Theorie zum Verständnis)
- ======================================================
- Bei den beigefügten rekursiven Kurven befinden sich auch solche für
- Bäume, Zweige und Gräser. Eine ungleich professionellere und natür-
- lichere Darstellung von Pflanzen läßt sich mit Hilfe von Graftalen er-
- reichen. Graftale sind wie Fraktale gekennzeichnet durch Selbstähn-
- lichkeit und großem Formenreichtum bei geringfügiger Veränderung von
- Parametern. Für Graftale gibt es allerdings keine mathematischen For-
- meln wie bei den Fraktalen, sie werden vielmehr über sogenannte Pro-
- duktionsregeln erzeugt. Vielleicht kennen Sie eine der zahlreichen
- Life-Simulationen, die es als Public Domain für den Atari gibt. Im Prin-
- zip wird dort ein frei vorgebbares Punktmuster nach bestimmten Regeln
- von Generation zu Generation verändert. Ähnlich, nur erheblich kom-
- plexer, wird auch bei den Graftalen verfahren. Eine vorgegebene Zei-
- chenfolge wird in ein bestimmtes Bitmuster transformiert, darauf wer-
- den Regeln angewandt, die wieder zu einer Zeichenfolge führen, usw.
- Sehen wir uns einmal die Sache genauer an.
- Erlaubt sind folgende vier Zeichen:
- Zeichen Bedeutung
- ---------------------------------------------------------------------
- 0,1 Gerade Strecken, Länge einstellbar
- [ Beginn einer Verzweigung. Der Winkel wird zufällig aus
- den vorgegebenen Winkel-Einstellungen gewählt.
- ] Ende der Verzweigung
- Es gibt 8 frei definierbare Produktionsregeln. Zu deren Anwendung werden
- die Nullen und Einsen des Codes zu einem Triplett ergänzt (Transfor-
- mation). Es gelten folgende 4 Transformationsregeln:
-
- 1. Eine einzelne 0 oder 1 wird vorn und hinten mit einer 1 ergänzt.
- Beispiel: 1 -> 111, 0 -> 101
- 2. Befinden sich mindestens zwei Zahlen (0 oder 1) hintereinander, so
- wird einmal vorn und einmal hinten mit einer 1 ergänzt.
- Beispiel: 10 -> 110 101, 00 -> 100 001, 11 -> 111 111, 01 -> 101 011
- 3. Zur Erzeugung des ersten Tripletts zu Beginn einer Verzweigung ([)
- wird das letzte Element des Hauptstrangs benutzt.
- Beispiel: 0[10] -> 101 [010 101]
- 4. Zur Erzeugung des ersten Tripletts nach dem Ende einer Vezweigung (])
- wird das letzte Element des Hauptstrangs benutzt.
- Beispiel: 10[0]1 -> 110 101 [001] 011
-
- Die aus dem Code erzeugten Tripletts werden als Binärzahlen interpre-
- tiert. Über die entsprechende Produktionsregel wird ein neuer Code er-
- zeugt (Generation 1), der wiederum transformiert wird, usw.
- Machen wir uns diesen etwas komplizierten Sachverhalt an Hand eines Bei-
- spiels klar:
-
- Produktionsregeln
- -----------------
- Binärzahl Regel
- 000 0
- 001 1
- 010 0
- 011 1
- 100 0
- 101 00[01]
- 110 0
- 111 0
-
- Startcode: 1
-
- Generation 0
- ------------
- Transformation:
- 1 -> Regel 1 -> 111
- Produktionsregeln:
- 111 -> 0
-
- Generation 1
- ------------
- 0
- Transformation:
- 0 -> Regel 1 -> 101
- Produktionsregeln:
- 101 -> 00[01]
-
- Generation 2
- ------------
- 00[01]
- Transformation:
- 00 -> Regel 2 -> 100 001
- [01] -> Regeln 2,3 -> [001 011]
- Produktionsregeln:
- 100 -> 0
- 001 -> 1
- [001 -> [1
- 011] -> 1]
-
- Generation 3
- ------------
- 01[11]
- Transformation:
- 01 -> Regel 2 -> 101 011
- [11] -> Regeln 2,3 -> [111 111]
- Produktionsregeln:
- 101 -> 00[01]
- 011 -> 1
- [111 -> [0
- 111] -> 0]
-
- Generation 4
- ------------
- 00[01]1[00]
- Transformation:
- 00 -> Regel 2 -> 100 001
- [01] -> Regeln 2,3 -> [001 011]
- 1 -> Regeln 1,4 -> 011
- [00] -> Regeln 2,3 -> [100 001]
- Produktionsregeln:
- 100 -> 0
- 001 -> 1
- [001 -> [1
- 011] -> 1]
- 011 -> 1
- [100 -> [0
- 001] -> 1]
-
- Generation 5
- ------------
- 01[11]1[01]
- Transformation:
- 01 -> Regel 2 -> 101 011
- [11] -> Regeln 2,3 -> [111 111]
- 1 -> Regeln 1,4 -> 111
- [01] -> Regeln 2,3 -> [101 011]
- Produktionsregeln:
- 101 -> 00[01]
- 011 -> 1
- [111 -> [0
- 111] -> 0]
- 111 -> 0
- [101 -> [00[01]
- 011] -> 1]
-
- Generation 6
- ------------
- 00[01]1[00]0[00[01]1]
- Die Anwendung der Transformations- und Produktionsregeln ergibt
- 01[11]1[01]00[01][01[11]1]
-
- Zur graphischen Darstellung entsprechen Nullen und Einsen jeweils einer
- Geraden mit einstellbarer Seitenlänge. Die Verzweigung erfolgt in einem
- Winkel, der aus den vorgegebenen Einstellungen zufällig ausgewählt wird.
-
-
- Viel Spaß beim Experimentieren! Beachten Sie den großen Einfluß des
- Startcodes auf die Graftale!
-
- ========================================================================
-
- III. ÜBER ITERATIVE FUNKTIONSSYSTEME UND DEREN PARAMETERSÄTZE
-
- Mit Feldern Seltsamer Attraktoren können sehr variable fraktale Gra-
- phiken erzeugt werden (Standardbeispiel:Sierpinski-Dreieck).
- Als Berechnungsgrundlagen dienen die Funktionen
- x'=a11*x+a12*y+b1
- y'=a21*x+b22*y+b2
- Aus n gegebenen Parametersätzen a11, a12, a21, a22, b1 und b2 wird ein
- Datensatz zufällig ausgewählt, in die Gleichungen eingesetzt und der
- Punkt P(x',y') bestimmt. Für den nächsten Punkt gilt dann x=x' und y=y'.
- Diese zufällige Auswahl und Berechnung wird beliebig oft wiederholt.
- Gestartet wird mit einem Zufallswert von x und y. Durch die wechselsei-
- tige Abhängigkeit von x',y',x und y wird ein Iteratives Funktionssystem
- mit fraktalen Eigenschaften gebildet. Geometrisch gesehen werden affin-
- lineare Transformationen durchgeführt. Eine ausführlichere und mathema-
- tisch exakte Beschreibung ist z.B. von Tobias Blickle in der ST-Computer
- 11/91, S.104ff, beschrieben.
-
- Parameter:
- Die mit einem Text-Editor veränderbare Parameter-Datei ist eine Textda-
- tei mit folgendem Aufbau:
- Zeile 1 beginnt mit fünf Zahlen, die durch Leerzeichen getrennt sind.
- Sie haben folgende Bedeutung:
- 1. Zahl: Anzahl der Parameter-Sätze
- 2. Zahl: x(min)
- 3. Zahl: y(min)
- 4. Zahl: x(max)
- 5. Zahl: y(max)
- x(min),y(min),x(max) und y(max) bilden das relative (Welt-)Koordinaten-
- system, dessen Ursprung P(x(min),y(min)) die linke untere (!) Ecke des
- Bildschirms bildet, P(x(max),y(max)) die rechte obere (!) Ecke. Durch
- die freie Bestimmbarkeit des Bezugssystems wird die Darstellungsweise
- sehr flexibel.
- Optional kann sich an die fünf Zahlen ein freier Text, z.B. die Bildbe-
- zeichnung, anschließen.
- Die Länge einer Zeile ist auf 80 Zeichen begrenzt.
- Nach einer Zeile mit den Parameter-Bezeichnungen folgen n Zeilen mit den
- Datensätzen, die sich jeweils in einer Zeile befinden müssen.
- Die einzelnen Parameter haben folgenden Einfluß:
- a11, a22: Stauchung/Spreizung in X- bzw. Y-Richtung
- a12, a21: Verzerrung nach rechts/links
- b1 , b2 : X/Y-Koordinaten der Eckpunkte
- Wenn Sie ein wenig mit einem einfachen Parametersatz (z.B. FENSTER.PAR)
- herumspielen, werden Sie bald eigene Fraktale entwerfen können. Für ei-
- gene Entwicklungen ist es oft erleichternd, die Bildschirm-Auflösung auf
- dem relativen Koordinatensystem abzubilden, d.h. x(min)=0, y(min)=400 (!
- eigentlich 399, doch läßt sich mit 400 leichter rechnen), x(max)=640
- (ebenfalls der Einfachheit halber), y(max)=0 (!).
-
- ========================================================================
-
- IV. LITERATURHINWEIS
- ====================
-
- Graftale und rekursive Kurven sind ausführlich in dem Buch
-
- Karl-Heinz Becker und Michael Dörfler
- Dynamische Systeme und Fraktale
- Vieweg-Verlag
-
- behandelt. Wenn Sie sich für Fraktale (Mandelbrot-, Julia- und Newton-
- Mengen) interessieren, so haben Sie hier das Buch der Wahl. Denken Sie
- ja nicht, Sie wüßten schon alles über Apfelmännchen; hier werden Sie
- eines Besseren belehrt!
-
- ========================================================================
-
- V. ZUM SCHLUß EINE BITTE DES AUTORS (KEINE ANGST,ES GEHT NICHT UM GELD!)
-
- Ich würde mich sehr freuen, wenn Sie mir gelungene Parametersätze für
- Graftale und/oder IFS zuschicken würden. Die gesammelten Werke werden
- allen Teilnehmern zugänglich gemacht. Also: Wir hören voneinander, nicht
- wahr?
-
- ======================== ENDE DES TEXTES ===============================
-
-